//package com.inspur.edp.bef.dtgenerator.api.mgrActionAssemblerGen;
//
//import com.inspur.edp.bef.api.action.assembler.IMgrActionAssemblerFactory;
//import com.inspur.edp.bef.bizentity.operation.BizMgrAction;
//import com.inspur.edp.bef.bizentity.operation.BizOperation;
//import com.inspur.edp.bef.bizentity.operation.collection.BizMgrActionCollection;
//import com.inspur.edp.bef.bizentity.operation.internalmgraction.IInternalMgrAction;
//import com.inspur.edp.bef.dtgenerator.api.BefApiGeneratorContext;
//import com.inspur.edp.caf.generator.BaseGenerator;
//import com.inspur.edp.caf.generator.item.InterfaceGenerator;
//import com.inspur.edp.caf.generator.item.InterfaceGeneratorContext;
//import com.inspur.edp.cef.gencommon.MediateType;
//import com.inspur.edp.cef.generator.overall.Utils;
//import com.inspur.edp.das.commonmodel.IGspCommonModel;
//import org.eclipse.jdt.core.dom.Modifier.ModifierKeyword;
//
//public class MgrAssFactoryInterfaceGenerator extends InterfaceGenerator {
//
//  // region Static Members
//  private static final String ItemNameTemplate = "I%1$sMgrActionAssemblerFactory";
//
//  // region BasicInfo
//  private BefApiGeneratorContext apiGenCtx;
//
//  public MgrAssFactoryInterfaceGenerator(BefApiGeneratorContext apiGenCtx) {
//    super(apiGenCtx.getCompilationUnitInfo());
//    this.apiGenCtx = apiGenCtx;
//    apiGenCtx.setMgrActionAssFactoryInterfaceType(
//        new MediateType(compileUnit.getPackageName(), getName()));
//  }
//
//  public static String getItemName(IGspCommonModel model) {
//    return String.format(ItemNameTemplate, model.getCode());
//  }
//
//  @Override
//  protected InterfaceGeneratorContext createInterfaceItemContext() {
//    return new InterfaceGeneratorContext();
//  }
//
//  @Override
//  protected java.util.ArrayList<ModifierKeyword> getAccessModifier() {
//    return new java.util.ArrayList<ModifierKeyword>(
//        java.util.Arrays.asList(ModifierKeyword.PUBLIC_KEYWORD));
//  }
//
//  @Override
//  protected String getName() {
//    return getItemName(apiGenCtx.getBeGenCtx().getBE());
//  }
//
//  // endregion
//
//  @Override
//  protected java.util.ArrayList<com.inspur.edp.caf.generator.baseInfo.TypeInfo>
//      addParentInterfaces() {
//    return new java.util.ArrayList<com.inspur.edp.caf.generator.baseInfo.TypeInfo>(
//        java.util.Arrays.asList(
//            Utils.createTypeInfo(IMgrActionAssemblerFactory.class)));
//  }
//
//  // endregion
//
//  // region ChildGenerators
//  @Override
//  protected java.util.ArrayList<BaseGenerator> createChildGenerators() {
//    BizMgrActionCollection mgrActions = apiGenCtx.getBeGenCtx().getBE().getBizMgrActions();
//    java.util.ArrayList<BaseGenerator> rez =
//        new java.util.ArrayList<BaseGenerator>(mgrActions.size());
//    for (BizOperation action : mgrActions) {
//      // if (string.IsNullOrWhiteSpace(mgrAction.FuncOperationID))
//      //    continue;
//      if (action instanceof IInternalMgrAction) {
//        if (authorityChanged((BizMgrAction) action)) {
//          rez.add(new InternalMgrActionMethodGenerator((BizMgrAction) action));
//        }
//      } else {
//        if (!action.getIsRef() || authorityChanged((BizMgrAction) action)) {
//          rez.add(
//              new CustomMgrActionMethodGenerator(apiGenCtx.getBeGenCtx(), (BizMgrAction) action));
//        }
//      }
//    }
//    return rez;
//  }
//
//  private boolean authorityChanged(BizMgrAction action) {
//    return true;
//  } // TODO: 元数据支持扩展时完善
//
//  // endregion
//}
